ヘッダーをスキップ
Oracle TimesTen In-Memory Database Java開発者およびリファレンス・ガイド
リリース7.0
E05166-01
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

TimesTen組込みプロシージャのコール

標準のODBC機能を拡張するTimesTen組込みプロシージャについては、『Oracle TimesTen In-Memory Database APIリファレンス・ガイド』の組込みプロシージャに関する章を参照してください。TimesTen組込みプロシージャは、CallableStatementインタフェースを使用して実行できます。

組込みプロシージャを実行するには、次の書式を使用します。

CallableStatement.execute("{ Call Procedure }")

組込みプロシージャを準備および実行するには、次の書式を使用します。

CallableStatement cStmt;

cStmt = con.prepareCall("{ Call Procedure }");

cStmt.execute();

結果セットを返す組込みプロシージャについては、ResultSet get*()メソッドを使用して、返されたResultSetからデータを取得できます。例2.11を参照してください。


注意: TimesTenで生成された結果セットの使用に関する注意事項は、「結果セットの使用」を参照してください。

例2.10

ttCkptプロシージャをコールしてファジー・チェックポイントを開始するには、次のように入力します。

Connection con;

CallableStatement cStmt;

.......

cStmt = con.prepareCall("{ Call ttCkpt }");

cStmt.execute();

con.commit(); // commit the transaction

例2.11

この例では、ttDataStoreStatusプロシージャをコールして、返される結果セットを印刷します。

結果セットの使用」に示した例とは異なり、この例では、ResultSet.getString を使用して、バイナリであるContextフィールドを取得します。これは、出力データは処理で使用されるのではなく、印刷されるためです。Context 値を印刷しない場合は、ResultSet.getBytesメソッドを使用すると、より高いパフォーマンスが得られます。

ResultSet rs;

cStmt = con.prepareCall("{ Call ttDataStoreStatus }");

if (cStmt.execute() == true) {

     rs = cStmt.getResultSet();

    System.out.println("Fetching result set...");

    while (rs.next()) {

        System.out.println("\n Data store: " + rs.getString(1));

        System.out.println(" PID: " + rs.getInt(2));

        System.out.println(" Context: " + rs.getString(3));

        System.out.println(" ConType: " + rs.getString(4));

        System.out.println(" memoryID: " + rs.getString(5));

        }

    rs.close();

  }

cStmt.close();


注意: 名前を使用してパラメータをCallableStatementに渡すことはできません。序数を使用してパラメータを設定する必要があります。また、SQLのエスケープ構文は使用できません。